// pages/shoppingCar/shoppingCar.js
Page({

   /**
    * 页面的初始数据
    */
   data: {
      isShow:true,
      carList:[],
      price:0
   },

   // 跳转到首页
   toIndex:function(){
      wx.switchTab({
        url: '/pages/index/index',
      })
   },

   // 减少商品数量的点击事件
   reduceNum:function(event){
      // 获取当前点击的商品的下标值
      var index = event.target.dataset.index
      // 获取购物车的缓存数组
      var carList = wx.getStorageSync('carList')
      // 获取当前点击的商品的数量
      var num = carList[index].num
      var isShow = true
      // 减少数量
      if(num > 1){
         num --
         // 数组重新赋值
         carList[index].num = num
         isShow = false
      }else{
         carList.splice(index,1)
         if(carList.length >= 1){
            isShow = false
         }
      }
      // console.log('index ==>',index)
      // console.log('carList ==>',carList)
      // console.log('num ==>',num)
      // 修改data里面的数据，渲染到页面上
      this.setData({
         carList,
         isShow
      })
      // 修改缓存数据
      wx.setStorageSync('carList', carList)
      // 调用计算总价的函数
      this.totalPrice()
   },

   // 增加商品数量的点击事件
   addNum:function(event){
      var index = event.target.dataset.index
      var carList = wx.getStorageSync('carList')
      var num = carList[index].num
      num ++
      carList[index].num = num
      this.setData({
         carList
      })
      wx.setStorageSync('carList', carList)
      // 调用计算总价的函数
      this.totalPrice()
   },

   // 删除商品的点击事件
   delData:function(event){
      var index = event.target.dataset.index
      var carList = wx.getStorageSync('carList')
      var isShow = true
      carList.splice(index,1)
      if(carList.length >= 1){
         isShow = false
      }
      this.setData({
         carList,
         isShow
      })
      wx.setStorageSync('carList', carList)
      // 调用计算总价的函数
      this.totalPrice()
   },

   // 判断商品是否选中
   isChecked:function(event){
      var index = event.target.dataset.index
      var carList = wx.getStorageSync("carList")
      // 判断复选框是否选中，返回为0，则取消选中，为1则选中
      var vauleLength = event.detail.value.length
      var checked = true
      // 判断条件
      if(vauleLength == 0){
         checked = false
      }
      carList[index].checked = checked
      // 修改data里面的数据
      this.setData({
         carList
      })
      // 修改缓存数据
      wx.setStorageSync('carList', carList)
      // 调用计算总价的函数
      this.totalPrice()
   },

   // 计算总价
   totalPrice:function(){
      var carList = wx.getStorageSync('carList')
      var price = 0
      for(var i=0;i<carList.length;i++){
         // 判断选中的商品计算总价
         if(carList[i].checked == true){
            price += carList[i].price * carList[i].num
         }
      }
      this.setData({
         price:price
      })
   },

   // 结算商品tosettlement
   tosettlement:function(){
      var carList = wx.getStorageSync('carList')
      var settlementList = []
      for(var i=0;i<carList.length;i++){
         // 判断当前商品是否选中
         if(carList[i].checked == true){
            // console.log(carList[i])
            settlementList.push(carList[i])
         }
         // console.log(settlementList)
         wx.setStorageSync('settlementList', settlementList)
         wx.navigateTo({
           url: '/pages/settlement/settlement',
         })
      }

   },

   /**
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {

   },

   /**
    * 生命周期函数--监听页面初次渲染完成
    */
   onReady: function () {

   },

   /**
    * 生命周期函数--监听页面显示
    */
   onShow: function () {
      var carList = wx.getStorageSync('carList')
      var isShow = true
      if(carList.length != 0){
         isShow = false
      }
      this.setData({
         carList,
         isShow
      })
      // 调用计算总价的函数
      this.totalPrice()
   },

   /**
    * 生命周期函数--监听页面隐藏
    */
   onHide: function () {

   },

   /**
    * 生命周期函数--监听页面卸载
    */
   onUnload: function () {

   },

   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
   onPullDownRefresh: function () {

   },

   /**
    * 页面上拉触底事件的处理函数
    */
   onReachBottom: function () {

   },

   /**
    * 用户点击右上角分享
    */
   onShareAppMessage: function () {

   }
})